#e
#Title[u -ꕪ-v]
#Text[]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main {
	#include_function ".\lib\lib_anime_Yuyuko.txt"
	let imageBoss = GetCurrentScriptDirectory() ~ "img\dot_yuyuko.png";

	let name	= "u@-ꕪ-v";
	let imgRumia	= GetCurrentScriptDirectory~"img\ExRumia.png";
    	let csd         = GetCurrentScriptDirectory;
    	let shotImage   = csd ~ "data_usershot.txt";
	let blueknife	= 182;
	let purpleknife	= 183;
	let redknife	= 177;
	let purplefairy	= 143;

	let wIni = 120;
	
	///////////////////////////////////////////////////////////

	@Initialize{
        CutIn(YOUMU, name, "", 0, 0, 0, 0);
	LoadGraphic(imageBoss);
	InitializeAction();
	    
        SetMovePosition02(GetCenterX(), GetClipMinY+120, wIni);
        SetLife(1);
        SetTimer(62);
	SetScore(500000);
        SetDamageRate(0, 0);
	SetInvincibility( 260 );
        LoadUserShotData(shotImage);
	SetEffectForZeroLife(60,30,2);
	SetDurableSpellCard;

	TMain();

	}
		
	@MainLoop{
	    SetCollisionA(GetX, GetY, 0);
	    SetCollisionB(GetX, GetY, 0);



	    yield;
	}
	
	@DrawLoop{
	    DrawBoss(imageBoss);
	    SetTexture(imageBoss);
	    DrawGraphic(GetX(), GetY());
	}
		
	@Finalize{
	    DeleteGraphic(imgRumia);
	}

	task TMain{

	    yield;
	    loop(wIni){ yield; }

	    loop(2){
	    laser;
	    shot;
	    knife;
	    loop(10){ yield; }
	    shot2;
	    knife2;
	    loop(10){ yield; }
	    shot3;
	    knife3;
	    loop(90){ yield; }
	    kusi;
	    loop(20){ yield; }
	    kusi2;
	    loop(20){ yield; }
	    kusi3;
	    loop(170){ yield; }
	    tyou;
	    loop(120){ yield; }
	    }
	    loop(2){
	    laser2;
	    shot;
	    knife;
	    loop(10){ yield; }
	    shot2;
	    knife2;
	    loop(10){ yield; }
	    shot3;
	    knife3;
	    loop(90){ yield; }
	    kusi;
	    loop(20){ yield; }
	    kusi2;
	    loop(20){ yield; }
	    kusi3;
	    loop(170){ yield; }
	    tyou;
	    loop(120){ yield; }
	    }
	    loop{
	    laser3;
	    shot;
	    knife;
	    loop(10){ yield; }
	    shot2;
	    knife2;
	    loop(10){ yield; }
	    shot3;
	    knife3;
	    loop(90){ yield; }
	    kusi;
	    loop(20){ yield; }
	    kusi2;
	    loop(20){ yield; }
	    kusi3;
	    loop(170){ yield; }
	    tyou;
	    loop(120){ yield; }
	    }
	}

	sub laser{
	CreateLaserB(001,500,30,AQUA01,100);
	SetLaserDataB(001,0,0,0,0,0,0,0,0.6);
	SetLaserDataB(001,100,0,0,0,0,0,NULL,0);
	CreateLaserB(002,500,30,PURPLE01,100);
	SetLaserDataB(002,0,0,0,0,0,0,180,-0.6);
	SetLaserDataB(002,100,0,0,0,0,0,NULL,0);
	CreateLaserB(005,500,30,PURPLE01,100);
	SetLaserDataB(005,0,0,0,0,0,0,60,-0.6);
	SetLaserDataB(005,100,0,0,0,0,0,NULL,0);
	CreateLaserB(006,500,30,AQUA01,100);
	SetLaserDataB(006,0,0,0,0,0,0,120,0.6);
	SetLaserDataB(006,100,0,0,0,0,0,NULL,0);
	CreateLaserB(013,500,30,PURPLE01,100);
	SetLaserDataB(013,0,0,0,0,0,0,350,-0.5);
	SetLaserDataB(013,100,0,0,0,0,0,NULL,0);
	CreateLaserB(014,500,30,AQUA01,100);
	SetLaserDataB(014,0,0,0,0,0,0,190,0.5);
	SetLaserDataB(014,100,0,0,0,0,0,NULL,0);
	SetShotKillTime(001,180);
	SetShotKillTime(002,180);
	SetShotKillTime(005,180);
	SetShotKillTime(006,180);
	SetShotKillTime(013,180);
	SetShotKillTime(014,180);
	FireShot(001);
	FireShot(002);
	FireShot(005);
	FireShot(006);
	FireShot(009);
	FireShot(010);
	FireShot(013);
	FireShot(014);
	}

	sub shot{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(019, GetX, GetY, 20);
	        SetShotDataA(019, 0, 1.5, i*dirSpace, 0, 0, 1, blueknife);
	        FireShot(019);
	    }
	}
	sub shot2{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(020, GetX, GetY, 20);
	        SetShotDataA(020, 0, 1.5, 3+i*dirSpace, 0, 0, 1, purpleknife);
	        FireShot(020);
	    }
	}
	sub shot3{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(021, GetX, GetY, 20);
	        SetShotDataA(021, 0, 1.5, 6+i*dirSpace, 0, 0, 1, blueknife);
	        FireShot(021);
	    }
	}
	sub knife{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(025, GetX, GetY, 20);
	        SetShotDataA(025, 0, 1.5, 15+i*dirSpace, 0, 0, 1, blueknife);
	        SetShotDataA(025, 100, 3, 15+i*dirSpace, 0, 0, 1, blueknife);
	        FireShot(025);
	    }
	}
	sub knife2{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(026, GetX, GetY, 20);
	        SetShotDataA(026, 0, 1.5, 12+i*dirSpace, 0, 0, 1, purpleknife);
	        SetShotDataA(026, 90, 3, 12+i*dirSpace, 0, 0, 1, purpleknife);
	        FireShot(026);
	    }
	}
	sub knife3{
	    let dirSpace = 360 / 32;
	    ascent( let i in 0..32 ) {
	        CreateShotA(027, GetX, GetY, 20);
	        SetShotDataA(027, 0, 1.5, 9+i*dirSpace, 0, 0, 1, blueknife);
	        SetShotDataA(027, 80, 3, 9+i*dirSpace, 0, 0, 1, blueknife);
	        FireShot(027);
	    }
	}
	sub kusi{
	    let pos	= [rand(0,360),rand(0,360)];
	    SetShotAutoDeleteClip(64,128,64,64);
	    let dirSpace = 360 / 18;
	    ascent( let i in 0..18 ) {
	        CreateShotA(031, GetX, GetY, 20);
	        SetShotDataA(031, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(031);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(032, GetX, GetY, 20);
	        SetShotDataA(032, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(032);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(033, GetX, GetY, 20);
	        SetShotDataA(033, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(033, 100, 3, -180+pos[0]+i*dirSpace, 0.5, 0, 1, redknife);
	        FireShot(033);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(034, GetX, GetY, 20);
	        SetShotDataA(034, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(034, 100, 3, -180+pos[0]+i*dirSpace, -0.5, 0, 1, redknife);
	        FireShot(034);
	    }
	}
	sub kusi2{
	    let pos	= [rand(0,360),rand(0,360)];
	    SetShotAutoDeleteClip(64,128,64,64);
	    let dirSpace = 360 / 18;
	    ascent( let i in 0..18 ) {
	        CreateShotA(031, GetX, GetY, 20);
	        SetShotDataA(031, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(031);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(032, GetX, GetY, 20);
	        SetShotDataA(032, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(032);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(033, GetX, GetY, 20);
	        SetShotDataA(033, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(033, 100, 3, -180+pos[0]+i*dirSpace, 0.5, 0, 1, redknife);
	        FireShot(033);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(034, GetX, GetY, 20);
	        SetShotDataA(034, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(034, 100, 3, -180+pos[0]+i*dirSpace, -0.5, 0, 1, redknife);
	        FireShot(034);
	    }
	}
	sub kusi3{
	    let pos	= [rand(0,360),rand(0,360)];
	    SetShotAutoDeleteClip(64,128,64,64);
	    let dirSpace = 360 / 18;
	    ascent( let i in 0..18 ) {
	        CreateShotA(031, GetX, GetY, 20);
	        SetShotDataA(031, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(031);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(032, GetX, GetY, 20);
	        SetShotDataA(032, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        FireShot(032);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(033, GetX, GetY, 20);
	        SetShotDataA(033, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(033, 100, 3, -180+pos[0]+i*dirSpace, 0.5, 0, 1, redknife);
	        FireShot(033);
	    }
	    ascent( let i in 0..18 ) {
	        CreateShotA(034, GetX, GetY, 20);
	        SetShotDataA(034, 0, 1.5, pos[0]+i*dirSpace, 0, 0, 1, redknife);
	        SetShotDataA(034, 100, 3, -180+pos[0]+i*dirSpace, -0.5, 0, 1, redknife);
	        FireShot(034);
	    }
	}
	sub tyou{
	    SetShotAutoDeleteClip(64,128,64,64);
	    let dirSpace = 360 / 24;
	    ascent( let i in 0..24 ) {
	        CreateShotA(035, GetX, GetY, 20);
	        SetShotDataA(035, 0, 1, i*dirSpace, 0, 0, 3, purplefairy);
	        SetShotDataA(035, 120, 3, i*dirSpace, 1, 0.05, 4, purplefairy);
	        FireShot(035);
	    }
	    ascent( let i in 0..24 ) {
	        CreateShotA(036, GetX, GetY, 20);
	        SetShotDataA(036, 0, 1, i*dirSpace, 0, 0, 3, purplefairy);
	        SetShotDataA(036, 120, 3, i*dirSpace, -1, 0.05, 4, purplefairy);
	        FireShot(036);
	    }
	    ascent( let i in 0..24 ) {
	        CreateShotA(037, GetX, GetY, 20);
	        SetShotDataA(037, 0, 1, i*dirSpace, 0, 0, 3, purplefairy);
	        SetShotDataA(037, 120, 3, -180+i*dirSpace, 1, 0.05, 4, purplefairy);
	        FireShot(037);
	    }
	    ascent( let i in 0..24 ) {
	        CreateShotA(038, GetX, GetY, 20);
	        SetShotDataA(038, 0, 1, i*dirSpace, 0, 0, 3, purplefairy);
	        SetShotDataA(038, 120, 3, -180+i*dirSpace, -1, 0.05, 4, purplefairy);
	        FireShot(038);
	    }
	}
	sub laser2{
	CreateLaserB(039,500,30,AQUA01,100);
	SetLaserDataB(039,0,0,0,0,0,0,0,0.77);
	SetLaserDataB(039,100,0,0,0,0,0,NULL,0);
	CreateLaserB(040,500,30,PURPLE01,100);
	SetLaserDataB(040,0,0,0,0,0,0,180,-0.77);
	SetLaserDataB(040,100,0,0,0,0,0,NULL,0);
	CreateLaserB(043,500,30,AQUA01,100);
	SetLaserDataB(043,0,0,0,0,0,0,77,-0.6);
	SetLaserDataB(043,100,0,0,0,0,0,NULL,0);
	CreateLaserB(044,500,30,PURPLE01,100);
	SetLaserDataB(044,0,0,0,0,0,0,103,0.6);
	SetLaserDataB(044,100,0,0,0,0,0,NULL,0);
	CreateLaserB(045,500,30,PURPLE01,100);
	SetLaserDataB(045,0,0,0,0,0,0,310,0.97);
	SetLaserDataB(045,100,0,0,0,0,0,NULL,0);
	CreateLaserB(046,500,30,AQUA01,100);
	SetLaserDataB(046,0,0,0,0,0,0,230,-0.97);
	SetLaserDataB(046,100,0,0,0,0,0,NULL,0);
	CreateLaserB(047,500,30,AQUA01,100);
	SetLaserDataB(047,0,0,0,0,0,0,47,-0.97);
	SetLaserDataB(047,100,0,0,0,0,0,NULL,0);
	CreateLaserB(048,500,30,PURPLE01,100);
	SetLaserDataB(048,0,0,0,0,0,0,133,0.97);
	SetLaserDataB(048,100,0,0,0,0,0,NULL,0);
	CreateLaserB(049,500,30,PURPLE01,100);
	SetLaserDataB(049,0,0,0,0,0,0,280,0.6);
	SetLaserDataB(049,100,0,0,0,0,0,NULL,0);
	CreateLaserB(050,500,30,AQUA01,100);
	SetLaserDataB(050,0,0,0,0,0,0,260,-0.6);
	SetLaserDataB(050,100,0,0,0,0,0,NULL,0);
	CreateLaserB(051,500,30,PURPLE01,100);
	SetLaserDataB(051,0,0,0,0,0,0,340,-0.6);
	SetLaserDataB(051,100,0,0,0,0,0,NULL,0);
	CreateLaserB(052,500,30,AQUA01,100);
	SetLaserDataB(052,0,0,0,0,0,0,200,0.6);
	SetLaserDataB(052,100,0,0,0,0,0,NULL,0);
	SetShotKillTime(039,180);
	SetShotKillTime(040,180);
	SetShotKillTime(043,180);
	SetShotKillTime(044,180);
	SetShotKillTime(045,180);
	SetShotKillTime(046,180);
	SetShotKillTime(047,180);
	SetShotKillTime(048,180);
	SetShotKillTime(049,180);
	SetShotKillTime(050,180);
	SetShotKillTime(051,180);
	SetShotKillTime(052,180);
	FireShot(039);
	FireShot(040);
	FireShot(043);
	FireShot(044);
	FireShot(045);
	FireShot(046);
	FireShot(047);
	FireShot(048);
	FireShot(049);
	FireShot(050);
	FireShot(051);
	FireShot(052);
	}
	sub laser3{
	CreateLaserB(057,500,30,AQUA01,100);
	SetLaserDataB(057,0,0,0,0,0,0,0,1);
	SetLaserDataB(057,100,0,0,0,0,0,NULL,0);
	CreateLaserB(058,500,30,PURPLE01,100);
	SetLaserDataB(058,0,0,0,0,0,0,180,-1);
	SetLaserDataB(058,100,0,0,0,0,0,NULL,0);
	CreateLaserB(059,500,30,PURPLE01,100);
	SetLaserDataB(059,0,0,0,0,0,0,83,-0.9);
	SetLaserDataB(059,100,0,0,0,0,0,NULL,0);
	CreateLaserB(060,500,30,AQUA01,100);
	SetLaserDataB(060,0,0,0,0,0,0,97,0.9);
	SetLaserDataB(060,100,0,0,0,0,0,NULL,0);
	CreateLaserB(061,500,30,AQUA01,100);
	SetLaserDataB(061,0,0,0,0,0,0,60,-0.9);
	SetLaserDataB(061,100,0,0,0,0,0,NULL,0);
	CreateLaserB(062,500,30,PURPLE01,100);
	SetLaserDataB(062,0,0,0,0,0,0,120,0.9);
	SetLaserDataB(062,100,0,0,0,0,0,NULL,0);
	CreateLaserB(063,500,30,AQUA01,100);
	SetLaserDataB(063,0,0,0,0,0,0,330,0.9);
	SetLaserDataB(063,100,0,0,0,0,0,NULL,0);
	CreateLaserB(064,500,30,PURPLE01,100);
	SetLaserDataB(064,0,0,0,0,0,0,210,-0.9);
	SetLaserDataB(064,100,0,0,0,0,0,NULL,0);
	CreateLaserB(065,500,30,AQUA01,100);
	SetLaserDataB(065,0,0,0,0,0,0,290,0.9);
	SetLaserDataB(065,100,0,0,0,0,0,NULL,0);
	CreateLaserB(066,500,30,PURPLE01,100);
	SetLaserDataB(066,0,0,0,0,0,0,250,-0.9);
	SetLaserDataB(066,100,0,0,0,0,0,NULL,0);
	CreateLaserB(067,500,30,AQUA01,100);
	SetLaserDataB(067,0,0,0,0,0,0,30,-1.5);
	SetLaserDataB(067,100,0,0,0,0,0,NULL,0);
	CreateLaserB(068,500,30,PURPLE01,100);
	SetLaserDataB(068,0,0,0,0,0,0,150,1.5);
	SetLaserDataB(068,100,0,0,0,0,0,NULL,0);
	CreateLaserB(069,500,30,PURPLE01,100);
	SetLaserDataB(069,0,0,0,0,0,0,275,1.25);
	SetLaserDataB(069,100,0,0,0,0,0,NULL,0);
	CreateLaserB(070,500,30,AQUA01,100);
	SetLaserDataB(070,0,0,0,0,0,0,265,-1.25);
	SetLaserDataB(070,100,0,0,0,0,0,NULL,0);
	CreateLaserB(071,500,30,PURPLE01,100);
	SetLaserDataB(071,0,0,0,0,0,0,70,-1.65);
	SetLaserDataB(071,100,0,0,0,0,0,NULL,0);
	CreateLaserB(072,500,30,AQUA01,100);
	SetLaserDataB(072,0,0,0,0,0,0,110,1.65);
	SetLaserDataB(072,100,0,0,0,0,0,NULL,0);
	SetShotKillTime(057,180);
	SetShotKillTime(058,180);
	SetShotKillTime(059,180);
	SetShotKillTime(060,180);
	SetShotKillTime(061,180);
	SetShotKillTime(062,180);
	SetShotKillTime(063,180);
	SetShotKillTime(064,180);
	SetShotKillTime(065,180);
	SetShotKillTime(066,180);
	SetShotKillTime(067,180);
	SetShotKillTime(068,180);
	SetShotKillTime(069,180);
	SetShotKillTime(070,180);
	SetShotKillTime(071,180);
	SetShotKillTime(072,180);
	SetShotKillTime(073,180);
	SetShotKillTime(074,180);
	FireShot(057);
	FireShot(058);
	FireShot(059);
	FireShot(060);
	FireShot(061);
	FireShot(062);
	FireShot(063);
	FireShot(064);
	FireShot(065);
	FireShot(066);
	FireShot(067);
	FireShot(068);
	FireShot(069);
	FireShot(070);
	FireShot(071);
	FireShot(072);
	}
}